home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / shell / igo / gosource / mdfsave.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-16  |  2.6 KB  |  128 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8. #include "igo.h"
  9. #include "banx.h"
  10. #include "kiffile.h"
  11. #include "title.h"
  12.  
  13. extern int    deskTopId ;
  14. extern int    warningId ;
  15.  
  16. int    fsavedialogId = -1 ;
  17. int    fsavebtnId[3] = -1 ;
  18. int    fsave_messageId[2] = -1 ;
  19.  
  20. /*    initDataMIFSAVE:fsavebtnId[0]:MJ_DBUTTONL40の呼び出し関数    */
  21. int    igo_save_exec(kobj, messId, argc, pev, trigger)
  22. int        kobj ;
  23. int        messId ;
  24. int        argc ;
  25. EVENT    *pev ;
  26. int        trigger ;
  27. {
  28. char *fileName;
  29. char wk_fname[80] ;        /*    ファイル名用の配列        */
  30.  
  31.     /*    fsavedialogIdで示されるオブジェクトを消す        */
  32.     MMI_SendMessage( fsavedialogId , MM_ERASE , 0 ) ;
  33.  
  34.     /*    オブジェクトをダイアログから取り外す    */
  35.     MMI_SendMessage( fsavedialogId , MM_DETACH , 0 ) ;
  36.  
  37.     retunrInitMenuFunc();
  38.  
  39.     /*    ファイルダイアログで"取消"が押されたらこれ以下を実行しない    */
  40.     if( fdlgFunc( wk_fname ) != 0 )
  41.     {
  42.  
  43.         title_fname_set( wk_fname);
  44.         fileName = title_fname_read();
  45.         if(kifu_write(fileName) != 0){
  46.  
  47.             /*    オブジェクトをダイアログに取り付ける    */
  48.             MMI_SendMessage( warningId , MM_ATTACH , 1 , deskTopId ) ;
  49.             /*    warningIdで示されるオブジェクトを表示する    */
  50.             MMI_SendMessage( warningId , MM_SHOW , 0 ) ; 
  51.             
  52.             return NOERR;
  53.         }
  54.  
  55.         switch(title_state_read()){
  56.         case QUIT:
  57.             MMI_SetHaltFlag( TRUE ) ;
  58.             break;
  59.         case NEW:
  60.             igo_do_init();
  61.             break;
  62.         case READ:
  63.             igo_do_read();
  64.             break;
  65.         default:
  66.             ;
  67.         }
  68.         title_fsave_off();
  69.     }
  70.  
  71.     return NOERR ;
  72. }
  73.  
  74. /*    initDataMIFSAVE:fsavebtnId[1]:MJ_DBUTTONL40の呼び出し関数    */
  75. int    igo_nosave_exec(kobj, messId, argc, pev, trigger)
  76. int        kobj ;
  77. int        messId ;
  78. int        argc ;
  79. EVENT    *pev ;
  80. int        trigger ;
  81. {
  82.     /*    fsavedialogIdで示されるオブジェクトを消す        */
  83.     MMI_SendMessage( fsavedialogId , MM_ERASE , 0 ) ;
  84.  
  85.     /*    オブジェクトをダイアログから取り外す    */
  86.     MMI_SendMessage( fsavedialogId , MM_DETACH , 0 ) ;
  87.  
  88.     retunrInitMenuFunc();
  89.  
  90.     switch(title_state_read()){
  91.     case QUIT:
  92.         MMI_SetHaltFlag( TRUE ) ;
  93.         break;
  94.     case NEW:
  95.         igo_do_init();
  96.         break;
  97.     case READ:
  98.         igo_do_read();
  99.         break;
  100.     default:
  101.         ;
  102.     }
  103.  
  104.     title_fsave_off();
  105.  
  106.     return NOERR ;
  107. }
  108.  
  109. /*    initDataMIFSAVE:fsavebtnId[2]:MJ_DBUTTONL40の呼び出し関数    */
  110. int    igo_save_cancel(kobj, messId, argc, pev, trigger)
  111. int        kobj ;
  112. int        messId ;
  113. int        argc ;
  114. EVENT    *pev ;
  115. int        trigger ;
  116. {
  117.     /*    dialogId_handyで示されるオブジェクトを消す        */
  118.     MMI_SendMessage( fsavedialogId , MM_ERASE , 0 ) ;
  119.  
  120.     /*    オブジェクトをダイアログから取り外す    */
  121.     MMI_SendMessage( fsavedialogId , MM_DETACH , 0 ) ;
  122.  
  123.     retunrInitMenuFunc();
  124.  
  125.     return NOERR ;
  126. }
  127.  
  128.